package com.scada.dao;

import java.util.List;
import java.util.Map;

import com.scada.model.bean.User;
import com.scada.model.bean.vo.UserRoleVO;
import com.scada.model.bean.vo.UserVO;
import com.scada.model.result.PageInfo;


public interface IUserDao {
	
	/** 
	 * @FunctionName: insertOneUser
	 * @Description: 新增用户
	 * @author: 沈浩
	 * @date: 2016年8月30日 下午5:09:46 
	 * @param user
	 * @return 返回数据库ID
	 */
	public int insertOneUser(User user);
	
	/** 
	 * @FunctionName: updateUser
	 * @Description: 修改用户
	 * @author: 沈浩
	 * @date: 2016年8月30日 下午5:10:34 
	 * @param user
	 * @return 修改的记录数
	 */
	public Integer updateUser(User user);
	
	/** 
	 * @FunctionName: findUserForLogin
	 * @Description: 通过用户名 密码查询user对象
	 * @author: 沈浩
	 * @date: 2016年8月30日 下午5:11:53 
	 * @param map key为 username password
	 * @return 返回user对象
	 */
	public User findUserForLogin(Map<String, Object> map);
	
	/** 
	 * @FunctionName: findUserDetail
	 * @Description: 通过ID查询user对象
	 * @author: 沈浩
	 * @date: 2016年8月30日 下午5:12:20 
	 * @param id
	 * @return 返回user对象
	 */
	public UserRoleVO findUserDetail(int id);
	
	/** 
	 * @FunctionName: findDataList
	 * @Description: 分页查询数据
	 * @author: 黄胜
	 * @date: 2016年11月3日 上午10:23:51 
	 * @param pageInfo 
	 * @return 
	 */
	public List<UserVO> findDataList(PageInfo<UserVO> pageInfo);
	
	/** 
	 * @FunctionName: count
	 * @Description:获取数量
	 * @author: 黄胜
	 * @date: 2016年11月3日 上午10:27:36 
	 * @param user
	 * @return 
	 */
	public int count(User user);
	
	/** 
	 * @FunctionName: deleteByPrimaryKey
	 * @Description: 删除3
	 * @author: 黄胜
	 * @date: 2016年11月3日 上午10:50:26 
	 * @param map
	 * @return 
	 */
	public int deleteByPrimaryKey(Map<String ,Object> map);
	
	/**
	 * 根据ID查询
	 */
	
	public User selectById(int id);
	
	/**
	 * 查询所有
	 * @return
	 */
	public List<User> list();
	
	
	public Integer updatePassword(Map<String,Object> map);
	
	public Integer usernameExist(Map<String,Object> map);
	
}
